// 发送 ajax 请求
//#region
/**
 * 1. 封装功能函数
 *   1. 功能点明确
 *   2. 函数内部应该保留固定代码(静态)
 *   3. 将动态数据抽成形参，由使用者根据自身的情况动态传入
 *   4. 一个良好的功能更函数应该设置形参的默认值（es6的默认值）
 *
 * 2. 封装功能组件
 *   1. 功能点明确
 *   2. 组件内部保留静态代码
 *   3. 将动态数据抽取成 props 参数，由使用者根据自身的情况以标签属性的形式动态传入 props 数据
 *   4. 一个良好的组件应该设计组件的必要性及数据类型
 */
//#endregion

import config from './config';
export default (url, data = {}, method = 'GET') => {
	return new Promise((resolve, reject) => {
		// 获取轮播图
		wx.request({
			url: config.host + url,
			data,
			method,
			header: {
				cookie: wx.getStorageSync('cookies') ? wx.getStorageSync('cookies').find(item => item.indexOf('MUSIC_U') !== -1) : '',
			},
			success: res => {
				// console.log('请求成功', res);
				if (data.isLogin) {
					// 说明是登陆请求
					// 将 cookie 存储至本地
					wx.setStorage({
						key: 'cookies',
						data: res.cookies,
					});
				}
				resolve(res.data);
			},
			fail: err => {
				console.log('请求失败', err);
				reject(err);
			},
		});
	});
};
